﻿<catel:DataWindow x:Class="Catel.Examples.AdvancedDemo.Views.MainWindow"
                  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                  xmlns:ViewModels="clr-namespace:Catel.Examples.AdvancedDemo.ViewModels"
                  xmlns:catel="http://catel.codeplex.com"
                  Width="600" ShowInTaskbar="True" Icon="/Resources/Icons/catel.ico">

    <!-- Resources -->
    <catel:DataWindow.Resources>
    </catel:DataWindow.Resources>

    <!-- Content -->
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>

        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>

        <Label Grid.Row="0" Grid.ColumnSpan="3">
            <TextBlock TextWrapping="Wrap">
                This demo application shows a lot of advaned features of Catel. One of the example is the difference between
                using MVVM providers as behavior or implementing the logic in the view base. Happy clicking around :)
            </TextBlock>
        </Label>

        <!-- Windows -->
        <GroupBox Grid.Row="1" Grid.Column="0" Header="Windows">
            <StackPanel>
                <Button Command="{Binding ShowWindowLogicInViewBase}" Content="Window logic in ViewBase" Style="{StaticResource FixedSizeButtonStyle}" />
                <Button Command="{Binding ShowWindowLogicInBehavior}" Content="Window logic in Behavior" Style="{StaticResource FixedSizeButtonStyle}" />
            </StackPanel>
        </GroupBox>

        <!-- User controls -->
        <GroupBox Grid.Row="1" Grid.Column="1" Header="User controls">
            <StackPanel>
                <Button Command="{Binding ShowNestedUserControlsLogicInViewBase}" Content="User controls logic in ViewBase" Style="{StaticResource FixedSizeButtonStyle}" />
                <Button Command="{Binding ShowNestedUserControlsLogicInBehavior}" Content="User controls in Behavior" Style="{StaticResource FixedSizeButtonStyle}" />
            </StackPanel>
        </GroupBox>

        <!-- Misc -->
        <GroupBox Grid.Row="1" Grid.Column="2" Header="Miscellaneous">
            <StackPanel>
                <CheckBox Content="Is IPleaseWaitService indeterminate" IsChecked="{Binding IsPleaseWaitIndeterminate}" />
                
                <Button Command="{Binding ShowPleaseWaitWindowViaServiceLocator}" Content="PleaseWaitWindow via ServiceLocator" Style="{StaticResource FixedSizeButtonStyle}" />
                <Button Command="{Binding ShowPleaseWaitWindowViaMEF}" Content="PleaseWaitWindow via MEF" Style="{StaticResource FixedSizeButtonStyle}" />
                <Button Command="{Binding ShowPleaseWaitWindowViaUnity}" Content="PleaseWaitWindow via Unity" Style="{StaticResource FixedSizeButtonStyle}" />

                <Button Command="{Binding ShowWindowWithBehaviors}" Content="Behaviors" Style="{StaticResource FixedSizeButtonStyle}" />
            </StackPanel>
        </GroupBox>
    </Grid>
</catel:DataWindow>
